import time
import unittest

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.support.select import Select


class MyTestCaseFireFox(unittest.TestCase):
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        # 注册 驱动打开的位置
        service = Service(executable_path="../../dirver_exe/geckodriver.exe")
        # 打开浏览器  driver 代表 浏览器对象
        cls.driver = webdriver.Firefox(service=service)

    def test_by_submit(self):
        """测试表单的提交"""
        self.driver.get("http://192.168.0.152:8080/testhtml/exam/login.html")
        # 定位 用户名和 密码 和 提交按钮  分别进行操作

        username = self.driver.find_element(By.NAME, "username")
        password = self.driver.find_element(By.NAME, "password")
        submit = self.driver.find_element(By.XPATH, "//input[@type='submit']")

        # 表单的提交方式 有两种 1. 使用 表单中的提交 按钮
        # 2. 使用 表单中的某一个元素 进行 整个表单的 提交
        username.send_keys('hanamaki')
        password.send_keys('andy')
        submit.submit()

    @classmethod
    def tearDownClass(cls) -> None:
        # cls.driver.close()  # 只会关闭一个标签页
        # cls.driver.quit()  # 直接退出浏览器 并且关闭所有的标签页
        pass


if __name__ == '__main__':
    unittest.main()
